Get a Tenant's Users with specific license type

{ getAllUsersDataByTenantAndLicenceType }

Returns a list of all users for a given tenant and license type.

Method

/API2/access/getAllUsersDataByTenantAndLicenceType

  • API Section: /API2/access
  • API Version: 2.0
  • From Release: 2018.5.2
  • Method operates via POST actions only.
  • Input Parameters

    Name

    tenantUsersGetObject

    Object Type

    Description

    The tenant object for fetching users.

    Output Response

    Successful Result Code

    200

    Response List Type

    Description of Response Type

    Returns a generic response object with the list of users for the tenant in the system Note that the response is returned as a list of items of this object type.

    Notes

    The user object can be used in other operations where it is required.

    Examples
    Content and Tag Operations (JavaScript):

    This example demonstrates how to find item's and the manipulation of content tags.

    The example uses API authentication driven from JavaScript. See Authentication APIs for alternatives.

    // URL of the Pyramid installation and the path to the API 2.0 REST methods
    var pyramidURL = "http://mysite.com/api2/";
    
    
    // step 1: authenticate admin account and get token
    // NOTE: callApi method is a generic REST method shown below.
    let token = callApi("auth/authenticateUser",{
    	"data":{
    		"userName":"adminUser",
    		"password":"abc123!"
    	}
    },false);
    
    
    //step 2: search for tenant by name
    let tenant=callApi("access/getTenantByName",{
    	"tenantName": "Company X",
    	"auth": token
    });
    
    let tenantId;
    
    //step 3: if tenant is found, get its ID. Otherwise create the tenant
    if(tenant.data != undefined){
    
        tenantId=tenant.data.id;
        log("found tenant with id "+ tenantId);
    	
    }else{
    
        log("tenant was not found ,creating one");
        let createTenantResult = callApi("access/createTenant",{
          "tenant": {
            "name": "Company X",
            "viewerSeats": 1,
            "proSeats": 1
          },
          "auth": token
        });
        tenantId = createTenantResult.data.modifiedList[0].id;
    	
    }
    
    
    //step 4: delete the tenant we found in step 2
    let deleteTenants=callApi("access/deleteTenants",{
    	"data": {
    	"tenantIds": [
    		tenantId
    	],
    	"deleteUsers": true,
    	"deleteServers": true
    	},
    	"auth": token
    });
    
    //step 5: get the default tenant
    let defaultTenant = callApi("access/getDefaultTenant",{
      "auth": token
    });
    
    let defaultTenantId = defaultTenant.data;
    
    
    //step 6: get available licenses by type for default tenant
    let proSeatsNumber = callApi("access/getAvailableTenantLicenseCount",{
      "tenantLicenseTypeData": {
        "tenantId": defaultTenantId,
        "licenseType": 200,
      },
      "auth": token
    });
    log("The default tenant has "+ proSeatsNumber.data + " available pro seats licenses");
    
    //step 7: get available users for tenant by license type
    let proSeatsUsersData = callApi("access/getAllUsersDataByTenantAndLicenceType",{
      "tenantUsersGetObject": {
        "tenantId": defaultTenantId,
        "clientLicenseType": 200,
      },
      "auth": token
    });
    
    
    // ##### optional generic logging method for debugging ##############
    function log(msg){
    	document.write(msg);
    	console.log(msg);
    }
    
    // ##### generic REST API calling method ##############
    function callApi(path,data,parseResult=true){
    	var xhttp = new XMLHttpRequest();
    	xhttp.open("POST", pyramidURL+path, false);
    	xhttp.send(JSON.stringify(data));
    	if(parseResult){
    		return JSON.parse(xhttp.responseText);
    	}else{
    		return xhttp.responseText;
    	}
    }